
import { ResType } from "./ResDefine";

/**
 * 各个引擎需要提供资源的辅助类需要实现的接口
 */
export interface IResBundle {
    /**
     * 
     * @param url 加载资源
     * @param type 
     * @param callback 
     */
    loadRes(url: string, type: ResType, callback: (err: any, res: any) => void, onProgress?: (finished: number, total: number, item?: any) => void): void;

    /**
     * 清理资源
     * @param url 
     */
    // release(url: any, type?: ResType): void;

    /**
     * 获取资源
     * @param url 
     * @param ResType 自定义的资源类型 
     */
    getRes(url: string, type: ResType): any;

    /**
     * 获得资源的依赖资源
     * @param url 
     */
    // getDependsRecursively(url: any): any;


    clear(): void

    //获得使用次数
    getCount(): number;

    sub(): void;

    add(): void;

    addRes(res: any): void;

    decRes(res: any): void;

    resCount(res: any): number;

}